package com.ffggffgfv.backend.service;

import com.ffggffgfv.backend.dto.UserPermissionDTO;
import com.ffggffgfv.backend.dto.UserRoleDTO;
import com.ffggffgfv.backend.entity.Role;

import java.util.List;

/**
 * 用户角色服务接口
 */
public interface UserRoleService {

    /**
     * 分配用户角色
     *
     * @param userId      用户ID
     * @param userRoleDTO 角色ID列表DTO
     * @return 是否成功
     */
    boolean assignRoles(Long userId, UserRoleDTO userRoleDTO);

    /**
     * 获取用户的角色列表
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    List<Role> getUserRoles(Long userId);

    /**
     * 获取用户的角色ID列表
     *
     * @param userId 用户ID
     * @return 角色ID列表
     */
    List<Long> getUserRoleIds(Long userId);

    /**
     * 获取当前用户的权限信息
     *
     * @param userId 用户ID
     * @return 用户权限DTO
     */
    UserPermissionDTO getCurrentUserPermissions(Long userId);

    /**
     * 获取用户的角色编码列表
     *
     * @param userId 用户ID
     * @return 角色编码列表
     */
    List<String> getUserRoleCodes(Long userId);
}
